One or more aspects of the present invention relate to the field of transaction processing server clusters. In particular, one or more aspects relate to reconnection of a client to a transaction processing server in a high availability server cluster.
A client transaction processing (TP) system that connects to a high availability (HA) cluster of cloned TP server systems can only connect to one of the server clones at any point in time, if the cloned servers are all identified using the same TP identifier. This causes a problem if one of the servers in the HA cluster needs to reconnect (perhaps after failure) to the client system in order to resolve partially completed transactions, such as in doubt units-of-work.
A first known solution is to manually stop the connection in the active server, before re-starting the connection in the idle server. This has the drawback that it requires manual intervention and can not easily be triggered on restart of a failed server without using an additional automation system.
A second known solution is to allow the connection to proceed, so that there are two connections from the client (one to each cloned server). This requires redesign of the TP to TP connection protocols which are based on a single stateful connection between predefined endpoints.
A third solution uses a third party management point which can be used to monitor the state of systems and notify HA cluster clients when servers in the HA cluster are available. This is a complicated and expensive solution.